import { $hotel_get,$hotel_post,$travel_get,$travel_post } from "../utils/request.ts";
import { md5 } from "md5js";

import { ElNotification } from 'element-plus'

//查询名称
export const $platFormName = async(type:object) =>{
    try{
        const data = await $travel_get('back/login/findName',type);
        return data;
    }catch (error) {
        console.error('请求失败:', error);
        ElNotification({
            title: '通知',
            message: '服务器异常，请联系管理员！',
            type: 'error',
        });
        return false;  // 发生错误时返回登录失败
    }

}

//查询所有酒店名
// export const $hotelNames = async() =>{
//     try {
//         const data = await $hotel_get('hotel/findAllHotelName'); // 假设接口地址是 /api/hotelPlatforms
            
//         return data;
//     } catch (error) {
//         console.error('请求失败:', error);
//         ElNotification({
//             title: '通知',
//             message: '服务器异常，请联系管理员！',
//             type: 'error',
//         });
//         return false;  // 发生错误时返回登录失败
//     }
// } 

export const $hotelName = async() =>{
    try {
        const data = await $hotel_get('hotel/findHotelNameById'); // 假设接口地址是 /api/hotelPlatforms
            
        return data;
    } catch (error) {
        console.error('请求失败:', error);
        ElNotification({
            title: '通知',
            message: '服务器异常，请联系管理员！',
            type: 'error',
        });
        return false;  // 发生错误时返回登录失败
    }
}

//用户登录
export const $Login = async(params: object) => { 
    // 对密码进行 md5 加密
    params.password = md5(params.password, 32);
    try {
        const data = await $travel_post('/back/login/login', params);
        
        if (data.code === 2001) {
        ElNotification({
            title: '通知',
            message: '登录成功',
            type: 'success',
        });
        sessionStorage.setItem('token', data.data);
        return true;  // 返回登录成功
        } else {
        ElNotification({
            title: '通知',
            message: data.msg,
            type: 'error',
        });
        return false;  // 返回登录失败
        }
    } catch (error) {
        console.error('请求失败:', error);
        ElNotification({
            title: '通知',
            message: '服务器异常，请联系管理员！',
            type: 'error',
        });
        return false;  // 发生错误时返回登录失败
    }
};

//获取一个账户
export const $getOne = async(params:object) =>{
    try {
        const data = await $travel_get('back/login/findByName',params); // 假设接口地址是 /api/hotelPlatforms
        return data;
    } catch (error) {
        console.error('请求失败:', error);
        ElNotification({
            title: '通知',
            message: '服务器异常，请联系管理员！',
            type: 'error',
        });
        return false;  // 发生错误时返回登录失败
    }
    
}

//获取员工列表
export const $employList = async(params:object) =>{
    let ret = await $hotel_get('employee/showByHotelId',params)
    
    return ret.t;
}

//添加员工
export const $add = async(params:object) =>{
    let ret = await $hotel_post('employee/save',params)
    return ret
}

//删除员工
export const $delete = async(params:object) =>{
    let ret  = await $hotel_get('employee/delete',params)
    return ret
}

//查看已离职员工
export const $employLeaveList = async() =>{
    let ret = await $hotel_get('employee/showLeaveByHotelId')
    return ret
}

//根据id查找员工
export const $findEmployeeById = async(params:object) =>{
    let ret = await $hotel_get('employee/findById', params)
    return ret
}

//更新员工
export const $update = async(params:object) =>{
    let ret = await $hotel_post('employee/modifyRole',params)
    return ret
}


//查询当前员工名
export const $userName = async() =>{
    let ret = await $hotel_get('employee/userName')
    return ret
}

//修改密码
export const $resetPwd = async(params:object) =>{
    //对密码加密
    params.oldLoginPassword = md5(params.oldLoginPassword, 32);
    params.newLoginPassword = md5(params.newLoginPassword, 32);
    let ret  = await $hotel_$post('employee/resetPwd',params)
    return ret
}

//根据类型查询名称
export const $getNamesByType = async(params: {type: string}) => {
    try {
        const data = await $hotel_get(`name/findByType`, params);
        return data.t;  // 假设返回的数据结构中包含一个 t 属性，包含名称列表
    } catch (error) {
        console.error('请求失败:', error);
        ElNotification({
            title: '通知',
            message: '服务器异常，请联系管理员！',
            type: 'error',
        });
        return [];
    }
}

